home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / CHIP Kasım 1998.iso / emulators / nintendo / nfndo058dos.exe / NOFRENDO.TXT < prev   
Text File  |  1998-03-11  |  15KB  |  338 lines

  1.                  =====================================
  2.                 |    Nofrendo version 0.58 public     |
  3.                 |  (c) 1998 Matthew Conte / DripWare  |
  4.                  -------------------------------------
  5.                < I don't think we're in Kansas anymore >
  6.                  -------------------------------------
  7.                 |     itsbroke@classicgaming.com      |
  8.                 |   http://www.netcom.com/~itsbroke   |
  9.                  =====================================
  10.  
  11. Sit Down and Shut Up.
  12. =====================
  13. 1. I make emulator, you find ROMs.  Crystal clear.
  14. 2. Don't send me ROMs- I have all I need, thanks.
  15. 3. Support for mappers > 34 will probably never be added.  If you're
  16.    going to gleefully flagellate yourself over the possibility of
  17.    playing the trained version of Super Getsufuu Gaiden Warrior Golden
  18.    Force Dynasty 2 (Japanese), it ain't gonna be on Nofrendo.  Go play
  19.    iNES or its derivative for that.  I have no interest in games that
  20.    your cousin saw at a Japanese flea market.
  21. 4. Ask about the source code and quickly become an organ donor.
  22.  
  23. Ego.
  24. ====
  25.  - Speed - all kinds of it.  All games except those which bankswitch
  26.    heavily far exceed real NES speed with zero frameskip on my p133.
  27.  - Bankswitching is much faster
  28.  - Graphics engine rebuilt from the ground up, it now rocks
  29.  - AUTO frameskip now default
  30.  - Icky NESticle palette removed
  31.  - New real-time state format (no longer NESticle compatible)
  32.  - 10 different real-time state slots, use 0-9 to select
  33.  - Keyboard remapped a bit to make room for the above (see below)
  34.  - Numerous mapper 1 (MMC1) fixes- Xexyz works, among others
  35.  - Dragon Warrior 3 and 4 now work, off a tip from Jim Geffre
  36.  - Long filenames are now used for all files under Win95, even if you
  37.    pass the shortened tildename (FILENA~1.NES).  This is great for
  38.    front-ends which pass only the 8.3 filename.  Short names in DOS.
  39.  - New command-line option "-nowhining"  Please, *please* read below.
  40.  - Keyboard control fix- Nofrendo will no longer freak if your
  41.    joystick isn't connected and one is specified in the .ini
  42.  - Joystick reading bug fixed- Commando no longer locks up
  43.  - Screen shots (it's about freaking time), 99 max per game, use '/'
  44.  - New VRAM discovery by D fixes Trojan up a bit
  45.  
  46. Bedridden.
  47. ==========
  48.  - GUS/AWExx support is hosed.  Please, use the SoundBlaster driver.
  49.    You can use the GUS/AWE drivers, but don't say I didn't warn you.
  50.  - Bankswitching.  Blah blah blah.  Technical crap removed.  It'll be
  51.    slow until the 6502 core is modified.  No ETA on that one, I'm
  52.    afraid.
  53.  
  54. Bitching.
  55. =========
  56. This is a public service announcement for NES emulator users.
  57.  
  58. Okay, I guess I've come up with a solution for this "dirty header"
  59. nonsense.  Here's the scoop- back in the day, when s00pA k-RAd kEWl
  60. d00Dz were starting the NES emulation "scene," there were a bunch of
  61. equally k-RAd kEWl NES utilities that would casually impregnate any
  62. ROMs you used with these utilities with the authors' neet-o names.
  63. The "header" is a 16 byte identification string that tells the
  64. emulator some crucial information, the most important being what
  65. mapper number is used in the actual cartridge.
  66.  
  67. Marat Fayzullin, the granddaddy of NES emulation, created the iNES
  68. format, and up through iNES 0.6, there were only 16 possible mapper
  69. numbers.  There were 9 unused bytes in the 16-byte header tagged as
  70. "reserved" and this is where the aforementioned kEWl d00dZ started
  71. writing their names into.
  72.  
  73. When iNES 0.7 came out, Marat changed the format to accomodate for
  74. all the new mappers that had been discovered, so another byte needed
  75. to be used- one that had been previously marked as "reserved." 
  76. Well, this poses a HUGE problem- because now two bytes have to be
  77. taken into account to calculate the mapper number, and one may or
  78. may not be invalid (the bulk of ROMs out there today have shit in
  79. the headers).
  80.  
  81. So what's the best thing to do?  Ignore all the people who have dirty
  82. ROM headers?  Well, I tried to do this, but there's too many problems,
  83. the crappy headers are already far too widespread.
  84.  
  85. So I've come up with the "-nowhining" command-line option.  Whining
  86. is on by default.  If Nofrendo encounters a mapper number it *thinks*
  87. is invalid, it will tell you, and let you run it as a normal mapper
  88. (0-15) ROM.  If it does run, I HIGHLY suggest you use my utility
  89. cajoNES to clean out the crap in the header, or hex edit it yourself.
  90.  
  91. If you turn "-nowhining" on, Nofrendo will assume your headers are
  92. clean, and only attempt to run ROMs exactly as they appear.
  93.  
  94. I hope this makes everyone happy.
  95.  
  96. Carded.
  97. =======
  98. This is Nofrendo, a Nintendo Entertainment System (NES) emulator for 
  99. MS-DOS/Windows based PC's.  It uses single-file style .NES ROMs, which
  100. you will need to dump or find yourself.  That's your job, be creative.
  101.  
  102. You'll need a computer, some memory, probably a monitor.  Sound cards
  103. are always nice, too.  Jacking yourself up on caffeine won't hurt.
  104.  
  105. Turn your head and cough:
  106. -------------------------
  107.  o NES registers/PPU/battery-backed RAM; all the standard crap
  108.  o 100% ASM 6502 core, courtesy Neil Bradley
  109.  o Digital sound support
  110.  o Support for mappers 0,1,2,3,4,7,9,11,15,16,19,21,22,23,32,33,34
  111.  o Line based graphics engine- supports raster/split screen effects
  112.  o Real time save-state files, 10 slots per game
  113.  o 4- and 2-button digital joystick/pad support
  114.  o 5 different video modes, including one VESA 2.0 mode (faster)
  115.  o LFN's under Win95
  116.  o Twin dufolator valves / overhead spindlerods
  117.  o Volume control
  118.  o My own "wicked accurate" palette
  119.  o Screen shots (oldskool PCX format)
  120.  o Automatic frameskipping / speed throttling
  121.  
  122. Motivation.
  123. ===========
  124. Okay, so there's like 5 billion other NES emulators.  So why another 
  125. one?  Why the fuck not?
  126.  
  127. You see, I'm broke and need something to do when I'm not out modeling
  128. for the covers of supermarket romance novels.  And since I'm a Toys
  129. 'R Us kid (I don't want to grow up), I'm getting back to my roots by
  130. playing slash emulating NES games.
  131.  
  132. Idealistic.
  133. ===========
  134. Nofrendo is and _always_ will be free.  I will never charge a cent for 
  135. it.  I will implement your requested features.  I will let you pinch
  136. my routines.  I will help you with your own emulator.  I will drink
  137. your beer.
  138.  
  139. I will NOT give you ROMs.  I will NOT deal with flames.  I will NOT be 
  140. providing round-the-clock assistance for this program- remember what I 
  141. said about not charging for it?  Please respect the fact that this is 
  142. a spare-time project, primarily done for my own enjoyment.  It works 
  143. for me and I like it.  If you like it I'll be ecstatic.  If not, I
  144. don't care.  Hey, there's plenty of other emulators out there for you.
  145.  
  146. If you can't find ROMs anymore, thank Nintendo of America for being
  147. total raging cockheads.
  148.  
  149. Do NOT distribute Nofrendo in any form other than the archive provided
  150. on the homepage.  Distributing Nofrendo with ROM images will most
  151. likely cause cancellation of this project.  You probably won't get
  152. many chicks, either.
  153.  
  154. Kinetics.
  155. =========
  156. Should be pretty self-explanatory.  Run it with no arguments to see a 
  157. list of command-line switches.  Get a front-end, unless you like being
  158. a command-line droid.  Andrew Bond's Console Menu 2.1 (which I use),
  159. and Zoop's nifty URL seem to be the choices of champions.
  160.  
  161. Additionaly, you can use the nifty configuration file, aptly titled
  162. Nofrendo.ini.  This file is created the first time you run Nofrendo
  163. in the same directory in which the executable lives.  I encourage you
  164. to read through the options in the .ini file, chances are they will be
  165. updated more frequently than this file.
  166.  
  167. Always delete your old .ini file when upgrading to newer versions.
  168.  
  169. Settings will *not* currently be saved to the .ini file (I had to
  170. attach at least some degree of laziness to the whole production).
  171. Which means you need to edit it by hand if you want Nofrendo to use
  172. your settings by default.  Not too tough- I'm pretty sure you can
  173. find yourself a copy of NOTEPAD.EXE or EDIT.COM somewhere...
  174.  
  175. Options passed on the command line will override what's in the .ini.
  176.  
  177. Current options:
  178.  -frameskip <frames>      - you should know what this is by now
  179.                             pass "AUTO" for auto-frameskip
  180.  -video <mode>            - changes graphics modes
  181.  -vsync                   - synchronize screen update to vertical
  182.                             retrace (eliminates 'shearing')
  183.  -sound <number>          - set sound on/off/autodetect
  184.  -volume <number>         - select volume level 1-16
  185.  -joy <type>              - select none/2-button/4-button gamepad
  186.  -romdir <path>           - directory to look for ROMs in
  187.  -savedir <path>          - directory to save .rtx/.sav/.pcx files in
  188.  
  189. Keys an infinite amount of monkeys might hit:
  190. ---------------------------------------------
  191.  F1  - 256x224 ModeX
  192.  F2  - 256x240 ModeX
  193.  F3  - 256x256 ModeX
  194.  F4  - 320x240 VESA2 Linear
  195.  F6  - 320x240 ModeX
  196.  0-9 - set save state slot (0 by default)
  197.  F5  - save real-time state file (.rtx) where x is slot num
  198.  F7  - load real-time state file (.rtx) where x is slot num
  199.  F8  - toggle VSYNC
  200.  F12 - reset NES hardware
  201.   ~  - toggle player 1 between gamepad/keyboard
  202.  - + - frameskip -/+
  203.  [ ] - volume -/+
  204.  ; ' - vblank lines -/+
  205.  , . - hblank -/+
  206.   /  - save screen shot (Filenamexx.pcx) (xx is a number 01-99)
  207.   \  - toggle vertical/horiztal mirroring
  208.  SPACEBAR - show/hide FPS display
  209.  BACKSPACE - display ROM info
  210.   
  211. Dicking with vblank or hblank can fix some games that rely on
  212. extra-super-precise timing.
  213.  
  214. Player controls are defined in the .ini file.  It's uglier than hell,
  215. but it do until a GUI comes to town.
  216.  
  217. Note that if you want to play two player games and you don't want to
  218. play Twister with your keyboard, you better rustle up a joystick for
  219. player 1.
  220.  
  221. Nitrous.
  222. ========
  223. Here's what's planned for the future, organized randomly:
  224.  
  225.  o Need to drop a 350 in the sound code (freq sweeps, DMC)
  226.  o I'd sell my mom to get SMB 3 to work
  227.  o GG codes - maybe, the Oldskool jury is still out on these
  228.  o Line-based sprite engine (will fix Duck Tales, W&W, etc.)
  229.  o Figure out Zelda 1 scrolling madness
  230.  o GUI (uh... er, maybe)
  231.  o Anything else that's requested
  232.  
  233. Bleh.
  234. =====
  235. Problems:  If you're still reading (unlikely), this may help.
  236.  
  237. SOUND - Basically, "-sound 0" shuts sound off, "-sound 8" autodetects,
  238. and 1-7 are specific sound cards.  See the .ini for details.  Setting
  239. the .ini to your card rather than autodetect will reduce startup time
  240. slightly.  Loud is cool.
  241.  
  242. GRAPHICS - modes 1-3 and 6 should work on any VGA card.  F4 will
  243. attempt to use VESA 2.0, which is faster.  Get SDD if you no have.
  244.  
  245. JOYSTICK - only digital joystick support is supported right now (i.e. 
  246. Gravis GamePad), 2-button and 4-button.  Why?  Because that's what I 
  247. have, and that's what I can test out.
  248.  
  249. ROMS - Nofrendo will *NO LONGER* assume that your ROM headers are
  250. dirty.  It's your job to sanitize your headers, not mine.  Thank all
  251. those kEWl 31337 ROM groups and ROM utilities for cocking up most of
  252. the ROM headers out there.
  253.  
  254. SPEED - I'm no optimization guru.  I don't know ASM, either.  But I
  255. *can* dance better than Prince.
  256.  
  257. Roots.
  258. ======
  259.  
  260. Software   Function          Cost
  261. =================================
  262. djgpp    - Compiler         $0.00
  263. Allegro  - Graphics library  0.00
  264. SEAL     - Audio library     0.00
  265. NASM     - Assembler         0.00
  266. m6502    - 6502 emulator     0.00
  267. ---------------------------------
  268. TOTAL                       $0.00  <- free.
  269.  
  270. As Nofrendo itself is free, everything I've used to make it is free
  271. as well.  I'm broke, and can't afford a real optimizing compiler, so 
  272. djgpp will have to do.  Performance could be better, but compiling
  273. under pgcc speeds it up a lot, and it works fine for me on my already-
  274. obsolete p133.  This will improve in the future (Nofrendo, not my
  275. computer).
  276.  
  277. This is my first real program.  This is the first program I've written 
  278. that uses the VGA.  This is the first program I've written that has 
  279. sound.  This is the first program I've written thas has more than one
  280. source file.  Give me a break if you're going to complain- I'm just 
  281. learning the basics of programming here.
  282.  
  283. Others.
  284. =======
  285. PROTONS: people who helped drag my sorry ass through 0's and 1's
  286. --------
  287. + Jeremy Levenson - falling off the wagon with me yet again... =)
  288. + Roberto Rosario - helped immensely by providing initial code and info
  289. + Neil Bradley - his ASM skills cover for my programming ineptitude
  290. + Zophar, EFX, Jim - testing, and support that exceeds a jockstrap
  291. + Marat Fayzullin, Jeremy Chadwick, {~}!Firebug<&?$ - Cliff's notes
  292. + Jim Geffre, Bloodlust, Kevin Horton, Matthew Richey - mucho info
  293. + Chris Pile - for speedily throttling speed throttling code my way
  294. + Ian - general support, sound help, and an all-around GUS freak
  295. + Trixter / Hornet - for the right nasty oldskool bitchin'
  296. + John Dullea - PCAE- the best damn 2600 emu this side of Pakistan
  297. + Paul Robson - maybe he'll tell me what a crumpet is someday
  298. + Jim Pragit of EMUNEWS - http://members.aol.com/emunews <- start page
  299. + Brunswick Beverage, Troy NY [RIP]- I'll miss those $3.69 sixers! =(
  300. + Kenny McCormick - for taking one for the team, as usual
  301.  
  302. ELECTRONS: people who didn't
  303. ----------
  304. - Nintendo of America - the Microsoft of videogames, only worse
  305. - Girl and Girl 2 - [sic]
  306. - Shareware emulator authors - Nostalgia pimps, a-whoring they go...
  307.  
  308. If you like this program, please let me know.  If you don't, people
  309. probably call you "Shacki."
  310.  
  311. Matt.
  312. 11 March 1998.
  313.  
  314. Take Notes.
  315. ===========
  316.   "To me, if you have nothing new and cool to bring to the table,
  317.    then there is no sense in designing a game.  Regrettably, about
  318.    80% of the video game business involves clone products and cheesy
  319.    licensed titles.  These are the too-numerous to mention titles
  320.    that no one remembers once the ad budget runs out.  Life is too
  321.    short to waste on me-too efforts." 
  322.                -- Eugene Jarvis, Defender/Robotron creator
  323.  
  324. Snore.
  325. ======
  326. . Nofrendo Copyright 1998 Matthew Conte / DripWare software.
  327. . Multi-6502 CPU emulator by Neil Bradley (neil@synthcom.com).
  328. . Allegro library by Shawn Hargreaves.
  329. . SEAL audio library by Carlos Hasan.
  330. . Nintendo Entertainment System (NES) is a registered trademark of
  331.   Nintendo of America.
  332. . The author is not affiliated with Nintendo nor does he advocate the
  333.   piracy of NES games (even if he thinks NOA bites monkey schlub).
  334. . Nofrendo is freeware and can be distributed freely as long the
  335.   archive remains intact and ROMs are not packaged with the program.
  336. . When you use this software you do so at your own risk.  The author
  337.   is not responsible for any loss or damage resulting from the use or
  338.   misuse of this software.